
import PrimeVue from 'primevue/config';
import type { PrimeVueConfiguration } from 'primevue/config';
import ToastService from 'primevue/toastservice';
// import { MessageService } from 'primevue/messageservice';
import ConfirmationService from 'primevue/confirmationservice';
import TerminalService from 'primevue/terminalservice';

import Button from 'primevue/button'
import InputText from 'primevue/inputtext'
import InputNumber from 'primevue/inputnumber';
import Toast from 'primevue/toast'
import Menu from 'primevue/menu';
import ScrollPanel from 'primevue/scrollpanel';
import Image from 'primevue/image'
import DataTable from 'primevue/datatable';
import Column from 'primevue/column';
import ColumnGroup from 'primevue/columngroup';   // optional
import Row from 'primevue/row';
import Card from 'primevue/card';
import Tag from 'primevue/tag';
import SplitButton from 'primevue/splitbutton';
import Paginator from 'primevue/paginator';

import Dialog from 'primevue/dialog';
import Message from 'primevue/message';
import Tree from 'primevue/tree'
import TreeTable from 'primevue/treetable'
import InputSwitch from 'primevue/inputswitch'
import Textarea from 'primevue/textarea';
import Checkbox from 'primevue/checkbox';
import Dropdown from 'primevue/dropdown';
import ConfirmDialog from 'primevue/confirmdialog';
import ConfirmPopup from 'primevue/confirmpopup';
import Tooltip from 'primevue/tooltip';
import Ripple from 'primevue/ripple';
import Splitter from 'primevue/splitter';
import SplitterPanel from 'primevue/splitterpanel';
import Fieldset from 'primevue/fieldset';
import Dock from 'primevue/dock';
import Terminal from 'primevue/terminal';
import Avatar from 'primevue/avatar';
import DataView from 'primevue/dataview';
import Sidebar from 'primevue/sidebar';
import Divider from 'primevue/divider';
import SpeedDial from 'primevue/speeddial';
import { useToast } from 'primevue/usetoast';
import { useConfirm } from "primevue/useconfirm";


export const primeVuePlugins = {
  PrimeVue: { plugin: PrimeVue, config: { ripple: true } as PrimeVueConfiguration },
  ToastService: { plugin: ToastService },
  ConfirmationService: { plugin: ConfirmationService },
}

export const primevueDirective = {
  tooltip: Tooltip,
  ripple: Ripple
}

export {
  Menu,
  Card,
  Tag,
  ScrollPanel,
  Button,
  Image,
  DataTable,
  Paginator,
  Row,
  ColumnGroup,
  Column,
  InputText,
  InputNumber,
  Textarea,
  Checkbox,
  Toast,
  SplitButton,
  Dialog,
  Message,
  Tree,
  TreeTable,
  InputSwitch,
  Dropdown,
  ConfirmDialog,
  ConfirmPopup,
  Splitter,
  SplitterPanel,
  Fieldset,
  Dock,
  Terminal,
  Avatar,
  DataView,
  Divider,
  Sidebar,
  SpeedDial,
  useToast,
  useConfirm,
  TerminalService
}
